#pragma once

#include "basetype.h"
#include "role.h"

class Object_C
{
public:
	Object_C(){};
	~Object_C(){};

	virtual void Update(float dt,Role_C &role) = 0;
	virtual void Draw(float x,float y) = 0;

	Rect_C	m_Rect;
};

class Floor_C : public Object_C
{
public:
	Floor_C(float x,float y,float w,float h) {m_Rect.Set(x,y,w,h);}
	~Floor_C(){}

	virtual void Update(float dt,Role_C &role);
	virtual void Draw(float x,float y);

private:

};

class Chacha_C : public Object_C
{
public:
	Chacha_C(float x,float y,float w,float h,float accelerate);
	~Chacha_C(){}

	virtual void Update(float dt,Role_C &role);
	virtual void Draw(float x,float y);

private:
	bool	m_Up;
	float	m_YStart;
	float	m_YSpeed;
	float	m_YAccelerate;
};

class DropRake : public Object_C
{
public:
	DropRake(float x,float y,float w,float h,float speed,float yend);
	~DropRake(){}

	virtual void Update(float dt,Role_C &role);
	virtual void Draw(float x,float y);

private:
	bool	m_bDown;
	bool	m_bRoleDead;
	float	m_YEnd;
	float	m_YSpeed;
};